home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 013 / cache.arc / CACHE.ART
Encoding:
Text File  |  1987-06-15  |  34.9 KB  |  712 lines

  1. LIVING WITH DOS:  DISK CACHES       
  2. by Barry Simon
  3.  
  4. Copyright (c) 1987, Capital PC User Group Inc.
  5. This material may be republished only for internal use
  6. by other not-for-profit user groups.
  7.  
  8. Posted on Compuserve with permission of CPCUG.  May not be
  9. reproduced without including the above copyright notice.
  10.  
  11. Published in the March 1987 issue of the Capital PC Monitor; 
  12. discussion of extended memory has been changed from the published 
  13. article.
  14.  
  15.  
  16. I/O, I/O, Its Off to Work We Go!
  17.  
  18. There is much noise made about running 286 based machines at 8, 10 
  19. or even 12 Megahertz.  While running your computer's 
  20. microprocessor at a faster speed will make a difference, for many 
  21. tasks the difference is bounded because the limiting factor is 
  22. often the speed of your input and output devices known 
  23. collectively as I/O.  That these devices slow down the CPU is seen 
  24. by the typical times involved.  8 MHz means that the CPU goes 
  25. through 8 million cycles per second.  Since a single instruction 
  26. on the 80xx family of chips takes from two to over twenty cycles, 
  27. a CPU in the current generation of MS-DOS machine can run at 
  28. roughly 1 MIPS (millions of instructions per second). 
  29.  
  30. Memory chips are rated at speeds of 70-200 nanoseconds.  A
  31. nanosecond is a billionth of a second which means that such chips
  32. are capable of speed comparable to CPU speeds.  That the speeds
  33. are slightly less is shown by the need for "wait states", which
  34. slow down the CPU to allow access to memory at its speed; RAM
  35. speeds, however, are roughly equal to those of the CPU.  I/O
  36. speeds are considerably less.  Even a fast hard disk rated at 20
  37. milliseconds has a rated speed 100,000 times the speeds associated
  38. to RAM.  Of course, because the RAM speed is a statement about
  39. each access and hard disk access times involve the first access of
  40. a disk sector, the actual ratios are not that bad.
  41.  
  42. But memory access, even by slow memory chips, is much faster than
  43. even speedy hard disks; diskettes are even slower.  While disk
  44. transfer rates are slower than RAM exchanges, they are speedy
  45. compared to output through parallel or serial ports, where
  46. transfer rates are measured in 100's of bytes per second.  (1200
  47. baud, for example, means roughly 120 characters per second.)  And
  48. your console, the name for the combined keyboard/monitor I/O
  49. device must interface the computer's slowest component -- you;
  50. its speeds are often the slowest of all.
  51.  
  52. There are software tools to try to speed up I/O especially by
  53. using RAM for certain operations.  This month, I'll discuss one
  54. category of those tools -- disk caches; programs that can
  55. substantially speed up disk access.
  56.  
  57. In this article, I discuss six commercial and one shareware disk
  58. cache programs; the programs are:
  59.  
  60. o  Emmcache, a shareware product by Frank Lozier;
  61.  
  62. o  Lightning from the Personal Computer Support Group;
  63.  
  64. o  Polyboost from Polytron;
  65.  
  66. o  Quickcache from Microsystems Developers, Inc.;
  67.  
  68. o  Speedcache from FSS Ltd;
  69.  
  70. o  Super PC-Kwik from Multisoft Corp.; and
  71.  
  72. o  Vcache from Golden Bow Systems.
  73.  
  74.  
  75. What Is a Disk Cache?
  76.  
  77. Disk caches are based on the idea that you are likely to want to
  78. access a file that you accessed recently.  This is not only true
  79. for obvious data files like a database which you might search
  80. several times in a row, but also for program overlays and for the
  81. files that DOS often consults to locate other files: the FAT and
  82. the various directories, especially the root directory.
  83.  
  84. Thus every time that a file is accessed, a cache will keep a copy
  85. of that file in memory set aside especially for that purpose.
  86. Since this special memory is limited, the cache has to have an
  87. algorithm to decide which parts of the cache to clear out to make
  88. room for new sectors.  All the caches under discussion use the
  89. algorithm of discarding those parts of the cache which were least
  90. recently accessed; that is, not the ones that were first read the
  91. longest ago but rather than ones which were needed longest ago.
  92. Whenever DOS calls for a sector from disk, the cache program
  93. intercepts the call to check if the requested material is in the
  94. cache memory.  If it is, the copy in memory is used and a disk
  95. access is saved.  A cache can avoid anywhere from one-third to
  96. two-thirds of your disk accesses.  To allow a large cache, it is
  97. natural to put the data part of the cache (that is, the copies of
  98. the sectors which were read rather than code that controls this
  99. data) in extended or expanded memory.
  100.  
  101. For safety's sake, you would not want these programs to delay
  102. writing to disk material that DOS wants to write to disk; this is
  103. called keeping dirty buffers and none of these programs keep dirty
  104. buffers.  However, as I'll explain, DOS does some of its own disk
  105. caching and it does keep dirty buffers which can produce problems.
  106.  
  107. Do not confuse keeping dirty buffers, that is delaying writing to
  108. disk, with caching writes.  The latter means that the cache writes
  109. to disk but keeps a copy of the material which is written to disk
  110. if it is different from the copy that was read previously.  For
  111. example, if you load a file in your word processor, change it and
  112. save it, a program that caches writes will save a copy of the
  113. final file version in its cache while one that does not, will not
  114. keep such a copy.  All the commercial programs discussed in this
  115. article cache writes, but Emmcache does not.
  116.  
  117. When I first started using a cache, I found the experience eerie.
  118. I'd do some action that I often did and wondered why my disk
  119. access light wasn't going on.
  120.  
  121.  
  122. Types of Memory
  123.  
  124. In our discussion of caching, various references will be made to
  125. the different kinds of memory that are available to microcomputer
  126. users.  These include:
  127.  
  128. o  Conventional memory, the 640K of Random Access Memory (RAM)
  129. that is readily accessible by most 8088/8086/80186 computers.
  130.  
  131. o  Extended memory, the memory above 1 megabyte (up to 16
  132. megabytes) that is accessible by 80286 computers.  This memory
  133. is not normally accessible for use as conventional memory but is
  134. generally used for RAM disks, disk caches or print spoolers.  
  135.  
  136. o Lotus/Intel/Microsoft Expanded Memory Specification (LIM EMS) and 
  137. supporting memory boards (up to 8 megabytes) are paged in and out 
  138. of conventional memory, thereby providing the user with additional 
  139. memory for supported software. 
  140.  
  141.  
  142. Not a Memory Cache
  143.  
  144. You should be careful to distinguish between a disk cache and 
  145. memory caches.  There are circumstances where it may happen that 
  146. some of your RAM runs at a higher speed than most of your RAM.  In 
  147. that case, it may pay to cache some of the reading of instructions 
  148. from the slow RAM to speed up programs with loops. Two situations 
  149. are where you add a speedup (usually 80186- or 80286-based) board 
  150. to a PC with lots of old RAM typically at 200 nanoseconds or with 
  151. 386 machines where RAM that keeps up with the processor should be 
  152. rated at 100 or even 70 nanoseconds.  In any event, these 
  153. situations involve a memory cache, not a disk cache which is the 
  154. subject of this article. 
  155.  
  156.  
  157. Caches Versus RAM Disks
  158.  
  159. You can also cut down on access to a physical disk by using a RAM
  160. disk, that is by setting aside a part of RAM as a virtual disk
  161. which DOS accesses as if it were an ordinary disk.  There are
  162. several differences between RAM disks and disk caches.  Accessing
  163. files from a RAM disk is often slightly faster as our time tests
  164. will show.  Moreover, the first access of a file with a cache will
  165. be slower than later accesses.  On the negative side, you must
  166. decide in advance which files you'll want on the RAM disk; you'll
  167. also have to be sure to copy any changed data files from the RAM
  168. disk to a real disk or risk losing them when you power down or if
  169. your system crashes.
  170.  
  171. Which should you use?  That depends on how you use your computer.
  172. If you only use a few programs without extensive data files, a RAM
  173. disk is probably better if you can make one large enough to hold
  174. what it needs to.  In other circumstances, a cache may be
  175. preferable.  If you have the RAM, there may be sense in using
  176. both:  a RAM disk for your common programs and a cache to take up
  177. the slack.  Most of the cache programs have built-in procedures
  178. to avoid caching programs from the RAM disk, allowing you to save
  179. valuable cache space for files from your physical disks.
  180.  
  181.  
  182. Read Ahead
  183.  
  184. Many caches will "read ahead", that is, read in an entire track
  185. whenever any reading takes place.  If your files are large and not
  186. fragmented, this can give you a real speed advantage but if not,
  187. your cache will fill up with unused material.  On a hard disk
  188. with many isolated bad sectors, read ahead can actually slow down
  189. disk access because of phantom disk errors.  Lightning, Super
  190. PC-Kwik, and Vcache have read ahead while the others do not.
  191. Super PC-Kwik has the advantage of having read ahead as an option
  192. that you can turn off.  The makers of Polyboost maintain that
  193. since most hard disks have errors and fragmented files, their
  194. lack of read ahead is a gain over the competition, but I think it
  195. will depend very much on your individual setup.  In my own case,
  196. for example, I have turned read ahead off when running on my main
  197. machine because of the isolated bad sectors on my hard disk.
  198.  
  199.  
  200. Are Caches Dangerous?
  201.  
  202. If your word processor fouls up a file write, all you are likely
  203. to lose is the file you wanted to save.  Typically, the files in
  204. your cache include the FATs and root directories of your disks.
  205. If these go bad, you are likely to have real problems getting to
  206. any of the data on your entire disk.  There are various tools
  207. which can help you recover from such a disaster, but they may not
  208. always work.  This means that caches have an inherent danger to
  209. them.  Of course, since DOS is also writing these files all the
  210. time, you could make the argument that caches are no more
  211. dangerous than DOS; perhaps even less so, since DOS keeps dirty
  212. buffers.
  213.  
  214. I cannot answer the questions about whether disk caches are really 
  215. dangerous.  I can report that I've met several users who are sure 
  216. that problems they've had with FATs were caused by cache programs. 
  217. This may well be true, although it is also true that if you have 
  218. any problems with the logical structure of your disk and you have 
  219. a cache, you are likely to blame the cache.  During the testing of 
  220. cache programs which went over six months, I lost the contents of 
  221. one of my hard disks three times.  Two seemed to be hardware 
  222. problems solved in one case by a low level reformat and in the 
  223. other by a disk replacement.  But the third one involved a piece 
  224. of software crashing the system; after rebooting, the root 
  225. directory on the hard disk was chopped liver.  I'm suspicious that 
  226. the culprit was the cache I was using but maybe it was DOS' dirty 
  227. buffers or the program that crashed in the first place.  All I can 
  228. say is that caching may be risky.  You should be sure to back up 
  229. often but especially so if you have a cache.  In fact, unless you 
  230. are willing to back up regularly, I recommend strongly against a 
  231. cache.  On the other hand, caches are rather useful.  I'm still 
  232. using a cache in spite of the problems that I had and some of 
  233. those who are certain that they had cache related problems are 
  234. still using them.  And I've met people who feel that caches are 
  235. among their most important utilities. 
  236.  
  237.  
  238. Non-standard Setups
  239.  
  240. Because of the inherent dangers in caching and because caching 
  241. involves modifications of the disk BIOS, you need to be extremely 
  242. careful if your disk setup is non standard.  You may need to 
  243. consult the vendors.  Super PC-Kwik explicitly says not to use it 
  244. if you have a Bernoulli Box while Vcache says that it supports 
  245. these devices.  The publishers of Vcache warned me not to use 
  246. Vcache with my 60 Meg Priam disk which I partitioned with Priam's 
  247. software into two 30 Meg drives; only large disks handled with the 
  248. VFEATURE program they they publish are compatible with Vcache.  On 
  249. the other hand, Super PC-Kwik warns against disks with non-
  250. standard sector sizes but said that it should work with software 
  251. making multiple standard DOS partitions.  I was warned that they 
  252. had not tested the program with the Priam software but I can 
  253. report that it worked perfectly.  Here, my advice is to check with 
  254. the publishers, be sure that you are backed up and run CHKDSK 
  255. several times a day when you first try a caching program with 
  256. anything non-standard. 
  257.  
  258. With these programs, you cannot cache a network by having a cache
  259. on your work station although you can sometimes cache the network
  260. disks with a cache on the server.  These are complex issues and
  261. before attempting to use caches on machines connected to LANs,
  262. you should be sure to speak with both the cache vendor and the
  263. network vendor.
  264.  
  265. There is a second warning that needs to be made about using these
  266. programs with AT extended memory, an option that is only available
  267. with Polyboost, Super PC-Kwik and Vcache.  Unfortunately, there
  268. is no memory management protocol for AT extended memory provided
  269. by the current versions of DOS.  This lack of a standard means
  270. there is potential for programs that you try to load there to not
  271. know of each others existence and to therefore overwrite each
  272. other.  Since IBM publishes the source code for VDISK, all these
  273. programs know about its protocol and can avoid clobbering it.
  274. The situation is not so good for other virtual disk programs.
  275. I've seen complaints about problems with AST's SUPERSPL program
  276. and I've had problems with a cache in extended memory overwriting
  277. a RAM disk set with the RAMDRV program included with Microsoft
  278. Windows and with some versions of MS-DOS.  It is unfortunate that
  279. Microsoft has not published the specifications that this program
  280. uses to access extended memory.  So, if you are using any other
  281. programs in extended memory and using an extended memory cache,
  282. be sure to check out the operation of the other programs after
  283. the cache is loaded.  Super PC-Kwik and Vcache have a command
  284. line parameter which you can use to give the program an absolute
  285. address in extended memory at which to load and so avoid the
  286. conflict "by hand".  That they have to resort to such a kludge
  287. speaks to the rather sorry state of extended memory support in
  288. DOS 3.x.
  289.  
  290. A second aspect of caches in extended memory is that access of
  291. extended memory involves features in the ROM BIOS that are not
  292. often used in the current generation of AT software.  Thus, the
  293. operation may be improper on some AT clones.  In fact, Vcache
  294. comes with a program to test the BIOS access of extended memory.
  295. If there is a problem, the clone maker must correct it.
  296. Given the advent of a DOS that will access extended memory, it is
  297. essential to get such problems rectified.
  298.  
  299. Two of the programs Speedcache and Quickcache load as device
  300. drivers rather than as com files.  Conventional wisdom would hold
  301. that device drivers are somewhat less prone to compatibility
  302. problems but I don't know if that is valid in these cases.
  303.  
  304.  
  305. Use Your Free Cache
  306.  
  307. If you don't purchase and use one of these stand alone caching
  308. programs, you should at least be sure to make use of the free
  309. cache that comes with DOS.  The cache size is set in units of 512
  310. bytes called buffers.  The default number, which DOS uses if you
  311. don't specify otherwise, is two for 8088 machines and three for
  312. 80826 based machines; both are woefully inadequate.  To increase
  313. the number of buffers you must include a line
  314.  
  315.   buffers=nn
  316.  
  317. in your config.sys file.  Here nn is the number of buffers that
  318. you want and the recommended numbers tend to be from 15 to 20.
  319.  
  320. Why not take buffers=99?  The algorithms that DOS uses are not as
  321. efficient as those in commercial caches so that the time it takes
  322. to search the buffers to see if the proper sector is in the buffer
  323. negates the time saved once the number of buffers becomes too
  324. high.
  325.  
  326. What are the disadvantages of using buffers for a cache?  First
  327. there is the issue of dirty buffers.  Actually, just using a
  328. commercial cache doesn't effect this since caches still use DOS
  329. for reading and writing and so the DOS buffers will still get
  330. used.  However, a cache that lets you decrease the number of
  331. buffers that you use will force DOS to write its buffers to disk
  332. more often because of space considerations.  Another disadvantage
  333. of DOS buffers is that since it is based on 512 byte chunks, if a
  334. program requests more than that at once, DOS will always go to
  335. disk and not check to see if the request is residing in its
  336. buffers.  Finally, there is the size issue that I mentioned; for
  337. really large caches, you'll need a commercial program.
  338.  
  339. In short, if you don't use a commercial caching program, be sure
  340. to put a line like
  341.  
  342.   buffers=20
  343.  
  344. into your config.sys file.
  345.  
  346.  
  347. Parameters
  348.  
  349. Once loaded, cache programs act in the background and require no
  350. action or input from the user.  But some of these programs have
  351. option switches which you'll need to study carefully to load the
  352. program to operate in an optimal manner.  For many, the defaults
  353. will be correct, but you'all at least want to adjust the cache
  354. size.
  355.  
  356. What is the proper size?  That's a trade off-between what else you
  357. want to use your RAM for and how you use your machine.  I have the
  358. impression that unless your cache is at least 60K, you may be
  359. better served by DOS buffers although for some operations, a 20K
  360. cache will show a noticeable improvement.
  361.  
  362. Lightning has the annoying feature of using EMS memory if you have
  363. it, even if you'd prefer to use conventional memory; it does not
  364. support AT extended memory.  As the name implies, Emmcache uses
  365. only EMS memory.  Speedcache supports the special bank switching
  366. protocol on the Tall Tree JRAM boards as well as conventional
  367. and EMS memory.  For the other programs, you'll have to decide
  368. whether your cache will reside in conventional, EMS or AT extended
  369. memory and how much memory it will take.  Be warned that some of
  370. the programs default to rather unreasonable values of cache size,
  371. such as all the remaining EMS memory or all the conventional
  372. memory except for 232K for your remaining programs.  Other
  373. parameters vary from program to program and concern things like
  374. what drives to cache and what algorithms to use in specific
  375. cases.  For all but the what and how much memory to use, you can
  376. probably get away with using the defaults initially.
  377.  
  378. Super PC-Kwik has many switches and it may pay to vary some of
  379. the switches and do some testing if some aspects of performance
  380. seem below what you expect.  For example, on the Kaypro 286i,
  381. changing the diskette parameter from the default /d+ to /d-
  382. resulted in an improvement of the diskettes test by a factor of
  383. more than 4!
  384.  
  385.  
  386. Memory Usage
  387.  
  388. Table 1 shows memory usage of the cache; it lists the amount of
  389. conventional memory used by the control part of the software
  390. exclusive of the memory taken by the cache.  If you put the cache
  391. in conventional memory, the amount in this table will be
  392. overwhelmed by the amount of memory taken by the cache itself
  393. but, if you place the cache in EMS or extended memory, this
  394. figure will be quite important.  For some of the conventional
  395. memory caches, you pick only the total size of cache plus
  396. controlling code.  For these, the amount of memory in the control
  397. part cannot be determined; these are indicated in the Table with
  398. an *.  All numbers are in kilobytes except for the first row.
  399. For those that allow you to decrease the number of DOS buffers,
  400. the second row can show a rather significant savings.  The
  401. figures for diskette cache give the amount needed to cache two
  402. diskette drives; for several of the programs, diskette caching is
  403. automatic and this amount is then listed as zero.  Polyboost
  404. suggests that you won't need to cache diskette drives if you have
  405. a hard drive; depending on your mode of operation, that may be
  406. true.
  407.  
  408. All the programs except for Polyboost will cache several hard
  409. disks from the same cache with only one loading of the control
  410. software.  Polyboost requires multiple loading of its hard disk
  411. cache which has two unfortunate consequences: you double the
  412. overhead involved with the cache control software and you must
  413. dedicate memory as associated with either one hard disk or the
  414. other; this isn't useful if you tend to work on one hard disk for
  415. a while and then switch to the other.  Polyboost's caching is
  416. limited to two hard disks.  Two of the programs, Quickcache and
  417. Speedcache, use an "advanced" EMS call not supported in the
  418. current version of the Xebec Amnesia board software which I was
  419. using; therefore, I am not able to report their memory usage.  In
  420. this instance, Speedcache printed an error message and exited
  421. without loading and Quickcache crashed the system.
  422.  
  423.      (Table 1 goes here)
  424.  
  425.  
  426. Time tests
  427.  
  428. Table 2 shows the results of time tests.  The tests are intended
  429. to be "real world" tests.  Tests 1-4 are tests of cache read
  430. functions.  Test 1 is the time to sort a 140K database that I
  431. had just sorted a different way.  This demonstrates the savings
  432. you would get from repeated access to a database.  Test 2 is the
  433. time to spell check a 40K document through the first pass which
  434. checks for possible misspellings.  Test 3 is the time it took to
  435. convert a 500K database from one version of a database I had to
  436. another.  Test 4 is the time to compile, link and EXE2BIN a 100K
  437. file which I had just treated by MASM, LINK and EXE2BIN on a hard
  438. disk and edited.  This is typical of a situation where you may
  439. get a compiler error, correct the source file, and then
  440. recompile.
  441.  
  442. Test 5 and 6 test the ability to speed up disk writing.  Test 5
  443. is a PC Magazine "write random sectors" test.  This test writes
  444. the same data repeatedly to sectors which may be the same and so
  445. it is particularly sensitive to the trick that caches use of
  446. suppressing a rewrite of identical data to what was earlier
  447. written to disk.  Test 6 is a patched version of test 5 which
  448. writes different data each time.  It was supplied to me by the
  449. publisher of Super PC-Kwik but I think it is a more significant
  450. test than the original test 5.
  451.  
  452. The remaining tests attempt to check cache overhead or special
  453. elements and are not as significant.  Test 7 is the time it took to
  454. copy 10 files adding to 350K from a hard disk to a floppy and
  455. test 8 is the same for a floppy to floppy copy.
  456.  
  457. Tests 9, 10 and 11 are Norton's disk test program on a hard disk,
  458. 1.2 megabyte floppy, and regular floppy, respectively.  The
  459. Norton tests are included because the results are so dramatic.
  460. These dramatic speed increases over DOS are due mainly to read
  461. ahead as can be seen by running Super PC-Kwik with this option
  462. turned off.  The copy tests check on whether there is time lost
  463. because of cache overhead.
  464.  
  465. The three columns listing DOS nn are tests done with no cache and
  466. nn buffers.  Tests 1, 2, 4, 5 and 6 were also done from a 1
  467. megabyte RAM disk and Test 3 using two 1 megabyte RAM disks.  For
  468. vague comparison purposes only, three other times are reported
  469. within asterisks:  The time for a Norton disk test on a 2.4 Meg
  470. RAM disk (#9), and the times to copy the same set of files used
  471. in Tests 7 and 8 from a hard disk to a RAM disk (as #7) and from
  472. one RAM disk to another (as #8).
  473.  
  474. All the tests are done on a Kaypro 286i with a Xebec EMS board.
  475. To check how much overhead EMS causes, I ran the tests for Super
  476. PC-Kwik in both EMS and conventional memory.  This overhead is
  477. due to the lack of DMA support in EMS and not to the bank
  478. switching.  Since I could not get Quickcache and Speedcache to
  479. run under this EMS setup, I did their tests in conventional
  480. memory which gives them a slight advantage.  I used the
  481. recommended number of DOS buffers with buffers=20 in those cases
  482. with no recommendation about decreasing the number of buffers.  I
  483. used 256K of cache.  For all the tests but Tests 8, 10 and 11,
  484. the cache was only hard disk for those programs (Polyboost,
  485. Vcache) with separate diskette caches.  For Vcache, I used a 240K
  486. vs. 24K split between disk and diskette caches and for Polyboost,
  487. which requires separate caches for each diskette, I used a 256K
  488. hard disk cache and 16K for each diskette.
  489.  
  490.     (Table 2 goes here)
  491.  
  492. First, the test results illustrate the importance of increasing
  493. buffers above the default 2 or 3 if you are not using a cache;
  494. they also illustrate that there is a break point where too many
  495. buffers can hurt you.  On things that caches do well (Tests 1-4),
  496. caches are competitive with RAM disks.
  497.  
  498. On Test #1 which is the most typical application of a cache, the
  499. cache programs all showed the same rather substantial gain.  While
  500. there is a some spread on the other figures, the read tests really
  501. don't distinguish between the different caches.  On writing, I'd
  502. give the nod to Super PC-Kwik and note that none of the tests
  503. adequately check for caching writes.  The lack of this feature in
  504. Emmcache made me lean towards Super PC-Kwik.  While Super PC-Kwik
  505. stands out as special in a positive way on writes, it also stands
  506. out negatively on diskette copies.
  507.  
  508. While on the subject of time tests, I should mention that
  509. Lightning allows you to call up a screen which tells you how much
  510. time you have saved by using the cache.  Its figures are pure
  511. fairy tale!  I found that often it told me that I'd saved time in
  512. situations where I'd actually taken more time than using
  513. buffers=20.  Presumably, it was using some algorithm giving me a
  514. comparison on some kind of slow 8088 based machine with buffers=2.
  515. Super PC-Kwik and Vcache will give you the more accurate listing
  516. of the number of accesses that have been from the cache as
  517. opposed to disk accesses.
  518.  
  519.  
  520. Screen Speedup
  521.  
  522. Polyboost and Vcache come with screen speedup programs;
  523. Polyboost also has a keyboard speedup program which I did not
  524. test.  Table 3 shows tests that I did in typing the same 111K
  525. file to the screen that I used in my earlier articles on console
  526. software.  RAW is a program which turns on DOS' raw mode (see
  527. February Monitor).  The tests with the CRTBOST and EGABOOST
  528. programs that come with Polyboost are done with their optional
  529. parameters set to 1 and to 5. Setting this parameter to 6 is
  530. equivalent to setting it to 5 and turning RAW on. Setting the
  531. parameter to 1 is recommended for most users.  Times are given in
  532. seconds.  For comparison, times are given for some of the other
  533. screen management programs that I have considered.  Fansi Console
  534. has a "quick" parameter which can be turned on and off.
  535.  
  536.      (Table 3 goes here)
  537.  
  538.  
  539. While the times on EGA/CRTBOOST are impressive, it has some bugs.
  540. When EGABOOST was installed, even with its speed parameter set to
  541. the slowest value (1), I was unable to change monitors on a two
  542. monitor system with either DOS' MODE command or a public domain
  543. program that I use.  There are programs that require me to use
  544. Fansi's capability to turn Q=1 on and off from BATch files.  These
  545. programs do not work properly with CRTBOOST at its highest
  546. settings.  You can change to a setting where they do work but only
  547. with a menu driven utility.  Finally, both CRTBOOST and VSCREEN
  548. suffer from the defect that screen speedup can be a disadvantage
  549. if you don't also have screen scrolling memory.  I have not
  550. tested all screen scrolling memory programs with these two speedup
  551. programs but I'd expect at least some incompatibilities.  Fansi
  552. comes with its own screen scrolling memory which even supports
  553. EMS.
  554.  
  555.  
  556. Summary
  557.  
  558. Lightning comes in both copy protected and unprotected versions;
  559. indeed, the price difference is so great that I'd call it
  560. ransomware.  Because you'll want to load the program as part of
  561. your autoexec.bat and the copy protection is of the key disk
  562. version, you will really need the unprotected variety.  All the
  563. other programs are not copy protected.
  564.  
  565. It seems to me that these programs, as a group, are somewhat
  566. overpriced.  They are subtle but not that complicated as can be
  567. seen by the fact that the main programs are typically about 5K.
  568. Indeed, in cost per byte, they may be the most expensive class of
  569. programs on the market.
  570.  
  571. On the basis of time tests alone, it is difficult to pick one
  572. among these programs.  Your choice will have to depend on factors
  573. like the amount of conventional memory they use, the particular
  574. characteristics of your system as they relate to issues like read
  575. ahead, and price.
  576.  
  577. Emmcache is a free program by Frank Lozier of Cleveland State
  578. University.  It is available to CPCUG members in a file called
  579. EMMCACHE.ARC on the MIX BBS, (301) 480-0350.
  580.  
  581. Lightning is published by the Personal Computer Support Group,
  582. 11035 Harry Hines Blvd., #206, Dallas, TX  75229, (214) 351-0564.
  583. The non-copy protected version is $89.95 and the copy protected
  584. version is $49.95.
  585.  
  586. Polyboost is published by POLYTRON, 1815 Northwest 169th Place,
  587. Suite 2110, Beaverton, OR  97006 (503) 645-1150 and lists for
  588. $79.95.  The package includes screen and keyboard speedup in
  589. addition to the caching software.
  590.  
  591. Quickcache is published by Microsystems Developers, Inc., 214-1/2
  592. West Main Street, St. Charles, IL  60174; it lists for $49.95.
  593.  
  594. Speedcache is published by FSS Ltd, 2275 Bascom Ave., Suite 304,
  595. Campbell, CA  95008, (408) 371-6242 and lists for $69.95.
  596.  
  597. Super PC-Kwik is published by Multisoft Corp., 18220 SW Monte
  598. Verdi, Beaverton, OR  97007, (503) 642-7108 and lists for $79.95.
  599. Also available is a conventional memory cache called Personal
  600. PC-Kwik for $39.95 and a cache without all the options and
  601. "advanced support" called Standard PC-Kwik for $49.95.
  602.  
  603. Vcache, which includes the Vdiskette and Vscreen programs, is
  604. published by Golden Bow Systems, P.O. Box 3039, San Diego, CA
  605. 92103, (619) 298-9349 and lists for $49.95.
  606.  
  607.  
  608.  
  609.                            │EMM  │ LIGHT│ POLYB │SPCK  │ VCACHE │SCACHE│QCACHE
  610. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  611. Recommended buffers        │  x  │  x   │   x   │  5   │   15   │  x   │  x
  612. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  613. Buffer memory saved        │  x  │  x   │   x   │ 7.5  │   2.5  │  x   │  x
  614. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  615. Conv. mem cache 20K        │ NA  │  2.7 │   *   │  *   │   4.2  │ 7.5  │ 9.7
  616. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  617. Conv. mem each add 16K     │ NA  │  0.4 │   *   │  *   │   0.3  │ 0.5  │ 0.5
  618. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  619. EMS memory 256K            │ 7.1 │ 19.0 │  9.1  │ 12.5 │   8.4  │  *   │  *
  620. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  621. EMS mem each add 64K       │ 1.0 │varies│  1.7  │   ~0 │   1.1  │  *   │   *
  622. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  623. EMS memory 1 Meg           │19.1 │ 36.3 │ 30.1  │ 12.7 │  21.6  │  *   │   *
  624. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  625. AT Ext. mem 256K           │ NA  │  NA  │  9.7  │ 29.4 │   8.9  │  NA  │  NA
  626. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  627. AT Ext. each add 64K       │ NA  │  NA  │  1.7  │  2.0 │   1.1  │  NA  │  NA
  628. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  629. AT Ext. mem 1 Meg          │ NA  │  NA  │  30.7 │ 43.4 │  22.1  │  NA  │  NA
  630. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  631. Maximum cache size (EMS)   │4 Meg│ 1536K│ 2200K │1072K │  15 Meg│  ?   │2000K
  632. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  633. 2 Diskette cache 16K (con) │  0  │  0   │  34   │  0   │  25.9  │  0   │  0
  634. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  635. 2 Diskette cache 16K (EMS) │  0  │  0   │  5.4  │  0   │  NA    │  0   │  0
  636. ───────────────────────────┼─────┼──────┼───────┼──────┼────────┼──────┼───────
  637. Able to load twice in error│  Y  │   N  │    N  │  N   │   N    │  N   │  N
  638. ───────────────────────────┴─────┴──────┴───────┴──────┴────────┴──────┴───────
  639.  
  640. Table 1.  Memory Usage of Cache Programs
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.    │DOS 3│DOS 20│DOS 90│EMM│LIGHT│POLY│VCACE│SPCK│SCON│SCAC│QCAC│RAMDSK
  648. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  649. #1 │ 19  │  19  │  19  │ 11│ 11  │ 11 │  11 │  12│  11│  10│  10│  12
  650. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  651. #2 │ 43  │  38  │  39  │ 37│ 36  │ 38 │  37 │  35│  32│  35│  34│  33
  652. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  653. #3 │1550 │ 783  │ 814  │615│620  │735 │ 650 │ 614│ 571│1065│ 704│ 642
  654. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  655. #4 │ 86  │  80  │  82  │ 75│ 75  │ 77 │  75 │  73│  73│  75│  75│  73
  656. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  657. #5 │ 18  │  20  │  20  │ 13│  3  │  3 │   3 │   5│   5│  12│   2│   5
  658. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  659. #6 │ 18  │  18  │  20  │ 13│ 13  │ 12 │  12 │   5│   5│  12│  11│   5
  660. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  661. #7 │ 45  │  31  │  30  │ 31│ 30  │ 28 │  32 │  41│  41│  29│  27│  *4*
  662. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  663. #8 │ 70  │  64  │  77  │ 62│ 64  │ 64 │  63 │  69│  69│  62│  61│  *2*
  664. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  665. #9 │604  │ 500  │ 535  │465│671  │476 │ 585 │ 490│ 371│ 451│ 453│ *20*
  666. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  667. #10│419  │ 415  │ 417  │418│ 67  │418 │  61 │  61│  61│ 418│ 417│
  668. ───┼─────┼──────┼──────┼───┼─────┼────┼─────┼────┼────┼────┼────┼──────
  669. #11│ 92  │  91  │  91  │ 90│ 36  │ 81 │  36 │  37│  37│  91│  89│
  670. ───┴─────┴──────┴──────┴───┴─────┴────┴─────┴────┴────┴────┴────┴──────
  671.  
  672. Table 2.  Time Tests on Disk Caches
  673.  
  674.   EMM   = Emmcache;
  675.   LIGHT = Lightning;
  676.   POLY  = Polyboost;
  677.   VCAC  = Vcache;
  678.   SPCK  = Super PC-Kwik, all in EMS.
  679.  
  680.   SCON  = Super PC-Kwik;
  681.   SCAC  = Speedcache;
  682.   QCAC  = Quickcache, all in conventional memory.
  683.  
  684.  
  685.  
  686.  
  687.  
  688.                  ║   EGA w/o│  EGA & │ Mono w/o│  Mono &
  689. Program          ║   RAW    │  RAW   │  RAW    │  RAW
  690. ═════════════════╬══════════╪════════╪═════════╪═════════
  691. ANSI             ║   143    │  120   │   125   │   93
  692. ─────────────────╫──────────┼────────┼─────────┼─────────
  693. FANSI CONSOLE/Q=0║   105    │   74   │    76   │   44
  694. ─────────────────╫──────────┼────────┼─────────┼─────────
  695. FANSI CONSOLE/Q=1║    32    │   17   │    38   │   15
  696. ─────────────────╫──────────┼────────┼─────────┼─────────
  697. FLICKER FREE     ║    NA    │   NA   │    34   │   13
  698. ─────────────────╫──────────┼────────┼─────────┼─────────
  699. NANSI            ║   104    │   66   │    74   │   38
  700. ─────────────────╫──────────┼────────┼─────────┼─────────
  701. TALL SCREEN      ║   204    │  177   │   174   │  149
  702. ─────────────────╫──────────┼────────┼─────────┼─────────
  703. VSCREEN          ║    90    │   74   │    61   │   46
  704. ─────────────────╫──────────┼────────┼─────────┼─────────
  705. POLYBOOST S=1    ║    81    │   66   │    53   │   37
  706. ─────────────────╫──────────┼────────┼─────────┼─────────
  707. POLYBOOST S=5    ║    30    │   13   │    25   │   10
  708. ─────────────────╨──────────┴────────┴─────────┴─────────
  709.  
  710. Table 3.  Time in Seconds to TYPE 111K File
  711.  
  712.